package com.ehome.poct.base.api.dto.device;

import com.ehome.core.entity.DTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 设备表DTO
 *
 * @author muqiu
 * @Date 2022-02-24 09:23
 */
@Data
@Accessors(chain = true)
public class TestDeviceDTO extends DTO {

    /**
     * 主键ID 唯一性
     */
    @ApiModelProperty("主键ID 唯一性")
    private Long testDeviceId;
    /**
     * 设备编号
     */
    @ApiModelProperty("设备编号")
    private String sno;
    /**
     * 质控状态 0 未质控  1 已质控
     */
    @ApiModelProperty("质控状态 0 未质控  1 已质控")
    private Integer qualityControlStatus;
    /**
     * 质控时间
     */
    @ApiModelProperty("质控时间")
    private LocalDateTime qualityControlTime;
    /**
     * 数据入库状态  0 未入库  1 已入库
     */
    @ApiModelProperty("数据入库状态  0 未入库  1 已入库")
    private Integer dataWarehousingStatus;
    /**
     * 数据入库时间
     */
    @ApiModelProperty("数据入库时间")
    private LocalDateTime dataWarehousingTime;
    /**
     * 数据入库人
     */
    @ApiModelProperty("数据入库人")
    private Long dataWarehousingBy;
    /**
     * 入仓状态
     */
    @ApiModelProperty("入仓状态")
    private Integer warehousingStatus;
    /**
     * 入仓类型 0 新增入库 1 返修入库
     */
    @ApiModelProperty("入仓类型 0 新增入库 1 返修入库")
    private Integer warehousingType;
    /**
     * 入仓人
     */
    @ApiModelProperty("入仓人")
    private Long warehouseBy;
    /**
     * 入仓时间
     */
    @ApiModelProperty("入仓时间")
    private LocalDateTime warehousingTime;
    /**
     * 出仓状态
     */
    @ApiModelProperty("出仓状态")
    private Integer outWarehouseStatus;
    /**
     * 出仓人
     */
    @ApiModelProperty("出仓人")
    private Long outWarehouseBy;
    /**
     * 出仓时间
     */
    @ApiModelProperty("出仓时间")
    private LocalDateTime outWarehouseTime;

    /**
     * 链路追踪id
     */
    @ApiModelProperty("链路追踪id")
    private String traceId;
    /**
     * 当前绑定的诊所id
     */
    @ApiModelProperty("当前绑定的诊所id")
    private Long termClinicId;
    /**
     * 最新的绑定时间
     */
    @ApiModelProperty("最新的绑定时间")
    private LocalDateTime bindTime;
    /**
     * 设备类型（1：金标仪。2：血常规）
     */
    @ApiModelProperty("设备类型（1：金标仪。2：血常规）")
    private Integer deviceType;
    /**
     * 工厂代码（那个代工厂生产的）
     */
    @ApiModelProperty("工厂代码（那个代工厂生产的）")
    private String factory;
    /**
     * 生产批次号
     */
    @ApiModelProperty("生产批次号")
    private String batchNum;
    /**
     * 应用类型
     * 1：市场普通版本
     * 2：赠送版本
     * 3：合作版本
     */
    @ApiModelProperty("应用类型 1：市场普通版本 2：赠送版本 3：合作版本")
    private Integer useType;
    /**
     * 远程下线的操作密码（防止误操作）
     */
    @ApiModelProperty("远程下线的操作密码（防止误操作）")
    private String password;
    /**
     * 设备当前的状态  （0出厂，1绑定机器中， 5已解绑， 10返修，44不可用状态可当远程下机功能使用
     */
    @ApiModelProperty("设备当前的状态  （0出厂，1绑定机器中， 5已解绑， 10返修，44不可用状态可当远程下机功能使用 ")
    private Integer status;
    /**
     * 外观图片
     */
    @ApiModelProperty("外观图片")
    private String facadeImg;
    /**
     * 后台API url ID
     */
    @ApiModelProperty("后台API url ID")
    private Long baseUrlId;
    /**
     * 图片地址url ID
     */
    @ApiModelProperty("图片地址url ID")
    private Long baseImgUrlId;
    /**
     * 微信报表之类相关的url ID
     */
    @ApiModelProperty("微信报表之类相关的url ID")
    private Long baseWechatUrlId;
    /**
     * 算法url ID
     */
    @ApiModelProperty("算法url ID")
    private Long baseAlgorithmUrlId;
    /**
     * 质控url ID
     */
    @ApiModelProperty("质控url ID")
    private Long baseQulityUrlId;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remarks;
    /**
     * 硬件类型   0公司持有。1客户持有(类似苏中）。2被赠送者持有（张家界一些诊所）。3学术研究机构持有（湘雅医院）
     */
    @ApiModelProperty("硬件类型   0公司持有。1客户持有(类似苏中）。2被赠送者持有（张家界一些诊所）。3学术研究机构持有（湘雅医院）")
    private Integer ownerType;
    /**
     * 机器版本
     */
    @ApiModelProperty("机器版本")
    private String version;
    /**
     * SoftwareVersion
     */
    @ApiModelProperty("SoftwareVersion")
    private String softwareVersion;

    /**
     * 生产时间
     */
    @ApiModelProperty("生产时间")
    private LocalDate productionDate;

    @ApiModelProperty("过期时间")
    private LocalDate validDate;
    
    @ApiModelProperty("有效时间")
    private Integer expirationDate;
    
    @ApiModelProperty("有效时间单位")
    private Integer timeUnit;
    
    @ApiModelProperty("算法状态")
    private Integer algorithmStatus;
}